package com.itqf.sms.controller;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.itqf.sms.dto.CommonsDto;
import com.itqf.sms.pojo.User;
import com.itqf.sms.service.UserService;
import com.itqf.sms.vo.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@CrossOrigin("*")
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;
 @PostMapping("login")
    public Object login(@RequestBody User user){
     R r=userService.login(user);
     return r;
 }
 @GetMapping("list")
    public Object list(String key){
     R r = userService.findUserList(key);
     return r;
 }
@GetMapping("delete")
    public Object delete(int id){
    R r = userService.removeUserById(id);
    return r;
    }
@PostMapping("save")
    public Object save(@RequestBody User user){
     R r=userService.saveUser(user);
     return r;
}
    @PostMapping("update")
    public Object update(@RequestBody User user){
        R r=userService.updateUser(user);
        return r;
    }

    @PostMapping("change")
    public Object change(@RequestBody CommonsDto commonsDto) throws JsonProcessingException {
        R r=userService.changeUser(commonsDto);
        return r;
    }
}
//修改密码接口
//        * @param commonsDto
//        *   思路1: 创建一个dto类! 类的作用就是为了接值!
//        *       pojo: 实体类 - 对应数据存储
//        *       vo: view object,返回前端的数据类型  code msg data --> R
//        *       dto: data transfer object 数据接收和传输对象
//        *             1.接收前端传递的数据 account old now  dto
//        *             2.方便数据由controller传向service
//        *      注意: 如果返回给前端的数据pojo直接满足,那么就直接返回pojo即可!
//        *            如果接收前端传递的数据,前端传递的数据完全可以pojo接值,那么也不需要创建dto!
//        *   思路2: 直接获取json字符串,使用jackson进行解析取值
//        *      步骤1: 形参列表声明一个字符串变量,并使用@RequestBody修改!
//        *      步骤2: 创建一个Jackson的处理类,ObjectMapper - new
//        *      步骤3: 将json字符串转化成JsonNode
//        *      步骤4: 读取JSON的属性值
//        *         jackson提供的一个解析类!可以将json字符串 转成json对象,再取值
//        *         ObjectMapper objectMapper = new ObjectMapper();
//        *         JsonNode jsonNode = objectMapper.readTree(json);
//        *         //对象获取属性
//        *         String old = jsonNode.get("old").toString();
//        *         //对象获取对象  new 吴彦祖()
//        *         JsonNode obj = jsonNode.get("obj");
//        *         String name = obj.get("name").toString();
//        *         //对象获取数组
//        *         JsonNode arr = jsonNode.get("arr");
//        *         //数组获取对象
//        *         for (JsonNode node : arr) {
//        *             String name1 = node.get("name").toString();
//        *         }
//        *         //注意: {account:,old:"",now:"",obj:{name:""},arr:[{name:""},{name:""}]}
//        *
//        * @return
//        */
